package cn.gok.gokhappymall.util;

import cn.hutool.core.util.StrUtil;

import java.util.*;

/**
 * @Author: chenfan
 * @Description: token的缓存工具类
 */
public class TokenCacheUtil {

    private static Map<String, Object> cacheMap;

    static {
        cacheMap = new HashMap<>();
    }


    public boolean addToken(String tokenKey, String tokenValue){
       return addToken(tokenKey,tokenValue,300000);
    }

    public boolean addToken(String tokenKey, String tokenValue,long timeOut){
        if (StrUtil.isBlank(tokenKey) || StrUtil.isBlank(tokenValue)){
            return false;
        }
        TokeCache tokeCache = new TokeCache(tokenKey,tokenValue,new Date());
        cacheMap.put(tokenKey,tokeCache);

        return false;
    }

//    private void removetimeOutToken(long timeOut){
//        new TimerTask(){
//            @Override
//            public void run() {
//                cacheMap.remove()
//            }
//        };
//    }



    /**
     * 描述token缓存信息的内部类。每个被缓存的token都是一个TokeCache对象
     */
    private class TokeCache{
        private String tokenKey;
        private String tokenValue;
        private Date createTime;

        public TokeCache() {
        }

        public TokeCache(String tokenKey, String tokenValue, Date createTime) {
            this.tokenKey = tokenKey;
            this.tokenValue = tokenValue;
            this.createTime = createTime;
        }

        public String getTokenKey() {
            return tokenKey;
        }

        public void setTokenKey(String tokenKey) {
            this.tokenKey = tokenKey;
        }

        public String getTokenValue() {
            return tokenValue;
        }

        public void setTokenValue(String tokenValue) {
            this.tokenValue = tokenValue;
        }

        public Date getCreateTime() {
            return createTime;
        }

        public void setCreateTime(Date createTime) {
            this.createTime = createTime;
        }
    }


}
